@哈哈鱼
2年前 提问
1个回答

web中的常见漏洞有哪些

帅末
2年前

web中的常见漏洞如下:

  • SQL注入:SQL注入就是通过把SQL命令插入到Web表单,递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令的目的。

  • 文件上传:文件上传漏洞是指用户上传一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。这种攻击方式是最为直接和有效的,有时几乎不具有技术门槛。“文件上传”本身没有问题,有问题的是文件上传之后服务器怎么处理、解释文件。如果服务器的处理逻辑做得不够安全,则会有严重的不安全隐患。

  • 文件下载:可以下载网站所有的信息数据,包括源码、网站的配置文件等信息。

  • 目录遍历:如果Web设计者设计的Web内容没有恰当的访问控制,允许HTTP遍历,攻击者就可以访问受限的目录,并可以在Web根目录以外执行命令。

  • XSS(跨站脚本攻击):跨站脚本攻击,为了不与层叠样式表的缩写CSS混淆,故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在Web应用中的计算机安全漏洞,其允许恶意Web用户将代码植入到提供给其他用户使用的页面中,这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞进行非法访问控制——例如同源策略(SameOriginPolicy)。这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击,所以广为人知。对于跨站脚本攻击,黑客界的共识是:跨站脚本攻击是新型的“缓冲区溢出攻击”,而JavaScript是新型的“ShellCode”。

  • 本地文件包含:这是PHP脚本的一大特色,程序员们为了开发方便常常会用到包含。本地包含漏洞是PHP中一种典型的高危漏洞。由于程序员未对用户可控的变量进行输入检查,导致用户可以控制被包含的文件名,当被成功利用时可以使WebServer将特定文件当成PHP脚本执行,从而导致用户获取一定的服务器权限。7.远程文件包含服务器通过PHP的特性(函数)去包含任意文件时,由于要包含的文件来源过滤不严,可以包含一个恶意文件,而我们可以构造这个恶意文件达到渗透系统的目的。几乎所有的CGI程序都有这样的Bug,只是具体的表现方式不一样罢了。

  • 全局变量覆盖:register_globals是PHP中的一个控制选项,可以设置成Off或者On,默认为Off,决定是否将EGPCS变量注册为全局变量。如果打开register_globals,客户端提交的数据中含有GLOBALS变量名,就会覆盖服务器上的$GLOBALS变量。

  • 代码执行:由于开发人员编写源码时没有针对代码中可执行的特殊函数入口做过滤,导致客户端可以提交恶意构造语句,并交由服务器端执行。Web服务器没有过滤类似system()、eval()、exec()等函数是该漏洞攻击成功的最主要原因。

  • 弱口令:弱口令的危害就犹如你买了一个高级保险箱,什么刀斧工具都破坏不了它,但遗憾的是你把钥匙挂在了门上。常见的弱密码出现在个人邮箱、网游账号、系统口令等环境。

  • 跨目录访问:开发人员没有正确地限制能够访问存储系统的网页路径。通常,跨目录攻击的受害者大多是社交网站,或者是全球性的Web服务器。因为在同一个Web服务器上可能为不同的用户或部门分配不同的目录。例如,每个MySpace用户都有一个个人的网络空间。此时,如果使用Cookie或者DOM存储,就可能产生跨目录攻击。

  • 缓冲区溢出:缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击会导致程序运行失败、系统宕机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权进而进行各种非法操作。

  • Cookies欺骗:Cookies能够让网站服务器把少量数据储存到客户端的硬盘,或从客户端的硬盘读取数据。当你浏览某网站时,由Web服务器置于你硬盘上一个非常小的文本文件,它可以记录你的用户ID、密码、浏览过的网页、停留的时间等信息。当你再次来到该网站时,网站通过读取Cookies得知你的相关信息,就可以做出相应的动作,如在页面显示欢迎你的标语,或者让你不用输入ID、密码就可以直接登录等。从本质上讲,它可以看作是你的身份证。但Cookies不能作为代码执行,也不会传送病毒,为你所专有,且只能由提供它的服务器来读取。保存的信息片断以“名/值对”(Name-ValuePairs)的形式储存,一个“名/值对”仅仅是一条命名的数据。Cookies欺骗就是修改其中保存的息,从而实现某些特殊的目的。

  • 反序列化:如果服务端程序没有对用户可控的序列化代码进行校验,而是直接进行反序列化使用,并且在程序中运行一些比较危险的逻辑(如登录验证等),那么就会触发一些意想不到的漏洞。比如经典的有Weblogic反序列化和Joomla反序列化漏洞。16.CSRF(跨站请求伪造)攻击者通过用户的浏览器注入额外的网络请求,破坏一个网站会话的完整性。浏览器的安全策略是允许当前页面发送到任何地址,因此也就意味着当用户在浏览其无法控制的资源时,攻击者可以控制页面的内容来控制浏览器,发送其精心构造的请求。17.命令注入系统对用户输入的数据没有进行严格过滤就运用,并且使用bash或cmd执行。

对于Web中的常见漏洞,应该从3个方面入手进行防御:

  • 对 Web应用开发者而言:大部分Web应用常见漏洞都是在Web应用开发中,由于开发者没有对用户输入的参数进行检测或者检测不严格造成的。所以,Web应用开发者应该树立很强的安全意识,开发中编写安全代码;对用户提交的URL、查询关键字、HTTP头、POST数据等进行严格的检测和限制,只接受一定长度范围内、采用适当格式及编码的字符,阻塞、过滤或者忽略其它的任何字符。通过编写安全的Web应用代码,可以消除绝大部分的Web应用安全问题。

  • 对Web网站管理员而言:作为负责网站日常维护管理工作Web管理员,应该及时跟踪并安装最新的、支撑Web网站运行的各种软件的安全补丁,确保攻击者无法通过软件漏洞对网站进行攻击。除了软件本身的漏洞外,Web服务器、数据库等不正确的配置也可能导致Web应用安全问题。Web网站管理员应该对网站各种软件配置进行仔细检测,降低安全问题的出现可能。此外,Web管理员还应该定期审计Web服务器日志,检测是否存在异常访问,及早发现潜在的安全问题。

  • 使用网络防攻击设备:前两种都是预防方式,相对来说很理想化。在现实中,Web应用系统的漏洞仍旧不可避免:部分Web网站已经存在大量的安全漏洞,而Web开发者和网站管理员并没有意识到或发现这些安全漏洞。由于Web应用是采用HTTP协议,普通的防火墙设备无法对Web类攻击进行防御,因此需要使用入侵防御设备来实现安全防护。